package cn.tedu._05mvcboot02.common.exception;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import javax.validation.ConstraintViolationException;

@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {

//    @ExceptionHandler
//    public String doHandleThrowable(Throwable e){
//        log.error("服务器发生异常:{}",e.getMessage());
//        return "服务器发生异常";
//    }

    @ExceptionHandler
    public String doHandleMethodArgumentNotValidException(MethodArgumentNotValidException e){
        log.error("参数验证失败:{}",e.getMessage());
        return e.getBindingResult().getFieldError().getDefaultMessage();
    }

    @ExceptionHandler
    public String doHandleConstraintViolationException(ConstraintViolationException e){
        log.error("参数验证失败:{}",e.getMessage());
        return e.getConstraintViolations().iterator().next().getMessage();
    }

}
